import { DatabaseConfig, TableConfig, TransactionConfig, OperationResult, QueryCondition } from '../types';

/**
 * 数据库接口
 */
export interface IJsonDB {
    /** 获取数据库配置 */
    getConfig(): DatabaseConfig;

    /** 创建数据表 */
    createTable(config: TableConfig): Promise<OperationResult>;

    /** 删除数据表 */
    dropTable(tableName: string): Promise<OperationResult>;

    /** 开始事务 */
    beginTransaction(config?: TransactionConfig): Promise<OperationResult>;

    /** 提交事务 */
    commitTransaction(transactionId: string): Promise<OperationResult>;

    /** 回滚事务 */
    rollbackTransaction(transactionId: string): Promise<OperationResult>;

    /** 执行查询 */
    query(tableName: string, conditions?: QueryCondition[]): Promise<OperationResult>;

    /** 关闭数据库 */
    close(): Promise<void>;
}
